﻿//*******************************************************************
//作者: 丁伯洋
//日期: 2006-4-27
//概要: 这里主要放的是一些检查合法性的函数
//      以_开头的函数请不要调用,
//*******************************************************************

// *********************************************************************************************** //
// function getStrLength(value):                    获取字符串实际长度,对于汉字作了处理。
// function checkStrLength(value,maxLen)):          检查字符串的长度,对于汉字作了处理。
// function checkEmail(value):                      检查Email是否合法。
// function isVaildEmail()                          检查Email是否合法（旧版网才检查邮件地址合法性）。
// function checkPhone(value):                      检查电话号码是否合法。
// function checkPostalcode(value):                 检查邮编是否合法。

// function checkCharWithNoException(value):        检查是否有不合法的字符,返回布尔值。
// function checkCharThrowErrorStr(value):          检查是否有不合法的字符,直接抛出异常字符串。
// function checkCharThrowErrorObj(value):          检查是否有不合法的字符,直接抛出异常对象。
        
// function formatNumber(value,precision):          按精度格式化浮点数，也可将精度设为-1则只进行检查数据的合法性。
// function formatCurrency(value,precision):        按精度格式化货币，也可将精度设为-1则只进行检查数据的合法性。
// function changeCurrencyToBig(value):             将货币金额转换成中文大写。
// function formatDate(value,formatstring):         将11位的日期（比如YYYY-MM-DD）转化为8位的字符串（YYYYMMDD）。
// function unFormatDate(value,formatstring):       将标准化的日期（YYYYMMDD）格式化成指定字符分割的日期格式（比如YYYY-MM-DD）。

// function trim(value):                            删除两端空格。
// function getMainPath():                          返回系统主页的完整路径。
// function getVirtualPath():                       返回虚拟目录的路径。
// function exitCurrentPage():                      关闭当前页面。
// function popWelcomeInfo:                         右键欢迎信息。

// function OpenDivMask():                          打开遮挡层同时把下拉筐隐藏。
// function CloseDivMask():                         关闭遮挡层同时把下拉筐显示。
// function ChangeForeColor():                      改变事件源字体颜色。
// function HasHtmlTag(val)                         判断内容中是否含有html标签
// function DoHtmlReplace(val)                      判断内容中是否含有html标签,并用空格替换
// function post_to_url(path, params, formName)     用于向指定页面提交数据，Sample:post_to_url(window.location.href,{'pwd':'111111', 'username':'admin'});
// function ShowMsg(Message,Title,LanType,OpenMask) 显示信息，函数会自动创建一个"p_msgbox"DIV,提示信息显示在里面
// function CloseMsg()                              与ShowMsg配套，用于关闭提示层
// function MoveToCenter(box,width,height)          把Div移动到屏幕中央     
// function GetUrlQuerystring(paras)                js获取url参数方法
// function IsContainsChinese(value)                字符是否是中文、全角字符
// function IsForbiddenUrl(value,type)              是否是禁用Url
// function ToHalfCharacter(val)                    全角转半角
// function isLegalName(str)                        检查是否为合法字符
// function isCharCodeValid(code,arr)               单个检查char字符是否为合法字符
// function in_arr(arr,val)                         查看val是否存在于arr数组中

// function onlyNum(event)                          只允许输入数字(@param event:事件)
// function getId()                                 返回对象
// function posMouseToLast(text)                    定位鼠标到文本框最后(@param text:文本框)
// function centerDialog(id)                        弹层屏幕居中(@param id:弹层id[带#号])
// window.dialog = {}                               自定义消息弹出框[alert、confirm] 
// function getSubBytes(value, len)                 根据文字的字数是否超限制，增加...(@param value:文本,@param len:截取字段长度)
// function htmlEncode(input)                       编码文字(@param input:文字)
// arry.unique                                      去除数组中重复元素
//function OpenWindow                                广告位打开链接
// *********************************************************************************************** //

// *********************************************************************************** //
// function getStrLength(value)
// -----------
// 功能：获取字符串实际长度
// 传入参数：
// value：要进行检查的数字
// 返回值：false: 超长  true：合法
// *********************************************************************************** //
function getStrLength(value){  
	var str,Num = 0;
	for (var i=0;i<value.length;i++){
		str = value.substring(i,i+1);
		if (str<="~")  //对双字节字特殊处理
			Num+=1;
		else
			Num+=2;
	}
	return Num;
}
// *********************************************************************************** //
// function checkStrLen(value,maxLen)
// --------------
// 功能：检查字符串的长度,对于汉字作了处理
// 传入参数：
//              value：  要进行检查的数字
//				maxLen：  长度
// 传出结果：   返回是否合法  false: 超长  true：合法
// *********************************************************************************** //
function checkStrLength(value,maxLen){  
	var str,Num = 0;
	for (var i=0;i<value.length;i++){
		str = value.substring(i,i+1);
		if (str<="~")  //对双字节字特殊处理
			Num+=1;
		else
			Num+=2;

		if (Num>maxLen)
		  return false;
	}
	return true;
}
// *********************************************************************************** //
// function checkEmail(value)
// --------------
// 功能：检查Email是否合法
// 传入参数：
//               value：  要进行检查的Email地址
// 传出结果：    返回是否合法  false: 错误  true：合法
// *********************************************************************************** //
function checkEmail(s)
{
	/*value = trim(value);
	var emailexp = /^$|^[a-z][a-z_0-9\.]+@[a-z_0-9\.]+\.[a-z]+$/i;
	return emailexp.test(value);*/
	
	
	
	//changed by jeron 20090511
	var flag=false;//标识是否是合法的Email
	//var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
	//var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/;	
	var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([A-Za-z0-9]+[-A-Za-z0-9_]*\.)+[A-Za-z]{2,}$/;//changed by chenlongwei20160622
	flag=RegExp(reg).test(trim(s));
	if(!flag){
	    		
		return false;
	}
	/*
	
	var i = 1;
    var len = s.length;	
	pos1 = s.indexOf("@");
	pos2 = s.indexOf(".");
	pos3 = s.lastIndexOf("@");
	pos4 = s.lastIndexOf(".");
	if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len))  
	{		
		return false;
	}
	else
	{
		if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)|| ( pos1 != pos3 )|| ( pos4 < pos3 ) ) 		
		{		
			return false;
		}
	}
	*/
	return true;
}

// *********************************************************************************** //
// function isVaildEmail()
// --------------
// 功能：检查Email是否合法（旧版网才检查邮件地址合法性）
// 传出结果：    
// *********************************************************************************** //
//added by huanghui 使用了51job的email正则表达式
function isVaildEmail(s)
{
try{   
        if (s.length > 100)
        {
               // window.alert(errtip);
                return false;
        }
		s = s.toLowerCase()
		var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|name|NAME)$";
		var re = new RegExp(regu);
         if (s.search(re) != -1) {
               return true;
         } else {
               //window.alert (errtip);
               return false;
         }
   }catch(er){
       throw er;       
   }
}

function isVaildEmail_old(s)
{
    var i = 1;
    var len = s.length;	
	pos1 = s.indexOf("@");
	pos2 = s.indexOf(".");
	pos3 = s.lastIndexOf("@");
	pos4 = s.lastIndexOf(".");
	if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len))  
	{		
		return false;
	}
	else
	{
		if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)|| ( pos1 != pos3 )|| ( pos4 < pos3 ) ) 		
		{		
			return false;
		}
	}
	return true;
}
// *********************************************************************************** //
// function checkPhone(value)
// --------------
// 功能：检查电话号码是否合法
// 传入参数：
//               value：  要进行检查的电话号码
// 传出结果：    返回是否合法  false: 错误  true：合法
// *********************************************************************************** //
function checkPhone(value)
{
	value = trim(value);
	var phoneexp = /^$|^[+0-9(][0-9\-\*()]+[0-9)]$/;
	return phoneexp.test(value);	
}

// *********************************************************************************** //
// function checkPostalcode(value)
// --------------
// 功能：检查邮编是否合法
// 传入参数：
//               value：  要进行检查的邮编
// 传出结果：    返回是否合法  false: 错误  true：合法
// *********************************************************************************** //
function checkPostalcode(value)
{
	value = trim(value);
	var phoneexp = /^$|^\d{6}$/;
	return phoneexp.test(value);	
}

// *********************************************************************************** //
// function checkCharWithNoException(value)
// --------------
// 功能：检查是否有不合法的字符,返回布尔值
// 传入参数：
//               value：  要进行检查的字符串
// 传出结果：    若有不合法字符抛出异常
// *********************************************************************************** //
function checkCharWithNoException(value)
{
	var chars="_'%\*&\+#"+'"';
	var regex = new RegExp("["+chars+"]");
	if(regex.test(value))
		return false;
	return true;		
}

// *********************************************************************************** //
// function checkCharThrowErrorStr(value)
// --------------
// 功能：检查是否有不合法的字符,直接抛出异常信息字符串
// 传入参数：
//               value：  要进行检查的字符串
// 传出结果：    若有不合法字符抛出提示字符串
// *********************************************************************************** //
function checkCharThrowErrorStr(value)
{
	var chars="_'%\*&\+#"+'"';
	var regex = new RegExp("["+chars+"]");
	if(regex.test(value))
		throw "不允许包含 "+chars+" 等特殊字符";	
	if (value.indexOf("--")>=0)
		throw "不允许包含--字符";
	return true;
}
// *********************************************************************************** //
// function checkCharThrowErrorStr(value)
// --------------
// 功能：检查是否有不合法的字符,直接抛出异常对象
// 传入参数：
//               value：  要进行检查的字符串
// 传出结果：    若有不合法字符抛出提示字符串
// *********************************************************************************** //
function checkCharThrowErrorObj(value)
{
	var chars="_'%\*&\+#"+'"';
	var regex = new RegExp("["+chars+"]");
	if(regex.test(value))
		throw new Error("不允许包含 "+chars+" 等特殊字符");	
	if (value.indexOf("--")>=0)
		throw new Error("不允许包含--字符");
	return true;
}


// *********************************************************************************** //
// function formatNumber(value,precision)
// --------------
// 功能：按精度格式化浮点数，也可将精度设为-1则只进行检查数据的合法性
// 传入参数：   value： 要进行检查的数字
//				precision：精度数
// 传出结果：   格式化后的值
// *********************************************************************************** //
function formatNumber(value,precision)
{
	var strErr;
	var num;
	var s_value,decimal_value;
	var decimal_sect,interger_sect;
	var strArrSect,strArr;
    var defautValue;
    if (precision>0)
    {
       defautValue="0.";
       var i = 0;
       while( i < precision)
       {
          defautValue =defautValue +"0";
          i++;
       }
    }
    else
    {
       defautValue = "0";
    }
	if(trim(value)=="")   //数据为空时返回
		value="0";
	if (isNaN(value))   //数据非法时提示，并返回空串
	{
		strErr = "数据"+value+"非法！";
		throw new Error(strErr);
		return defautValue;
	}
	if (precision==-1)   //只作检查时精度为-1
		return Number(value);
	try
	{
	    s_value = value.toString()+".";
	    strArrSect = s_value.split(".");
	    
	    if(typeof(strArrSect[1])=='undefined')
		{
			strArrSect[1]=0;
		}
		integer_sect = strArrSect[0];
	    decimal_sect = "0."+strArrSect[1];
	    
	    
		num = Math.pow(10,precision);
		decimal_value = Math.round(decimal_sect*num)/num;
		decimal_value = decimal_value.toString();
		decimal_value = decimal_value+".";
		strArr = decimal_value.split(".");
		if(typeof(strArr[1])=='undefined')
		{			
			strArr[1] = "";
		}
		while(strArr[1].length<precision)
		{
			strArr[1] = strArr[1]+"0"
		}
		if(precision!=0)
			s_value = integer_sect+"."+strArr[1];
		else
			s_value = integer_sect;
		return s_value;    //成功时返回格式化后的值
	}
	catch(err)
	{
		throw new Error(err.description);
		return value;      //若失败则返回原值
	}
}
// *********************************************************************************** //
// function formatCurrency(value,precision)
// --------------
// 功能：按精度格式化货币，也可将精度设为-1则只进行检查数据的合法性,
// 以货币的形式显示,如20,000,000.00
// 传入参数：   value： 要进行检查的数字
//				precision：精度数
// 传出结果：   格式化后的值
// *********************************************************************************** //
function formatCurrency(value,precision)
{
	var strErr;
	var num;
	var f_value,s_value;
	var strArr

	if(trim(value)=="")   //数据为空时返回
		return "";
	if (isNaN(value))   //数据非法时提示，并返回空串
	{
		strErr = "数据"+value+"非法！";
		throw new Error(strErr);
		return "0";
	}
	if (precision==-1)   //只作检查时精度为-1
		return value;
	try{
		num = Math.pow(10,precision);
		f_value = Math.round(value*num)/num;
		s_value = f_value.toString();
		s_value = s_value+".";
		strArr = s_value.split(".");
		if(typeof(strArr[1])=='undefined')
		{
			strArr[1] = strArr[1].toString();
			strArr[1] = "";
		}
		while(strArr[1].length<precision)
		{
			strArr[1] = strArr[1]+"0"
		}
		var l = parseInt(strArr[0].length)%3 ;
		s_value = strArr[0].substring(0,l); 
		var len= parseInt(parseInt(strArr[0].length)/3);
		for(i=0; i<len ;i++)
		{
		  if(l != 0)
		  {
		    s_value +=",";
		  }
		  s_value += strArr[0].substring(l,l+3); 
		  l+=3;
		}
		if(precision!=0)
			s_value = s_value+"."+strArr[1];
		else
			s_value = s_value;
		return s_value;    //成功时返回格式化后的值
	}catch(err){
		throw new Error(err.description);
		return value;      //若失败则返回原值
	}
}


// *********************************************************************************** //
// function changeCurrencyToBig(value)
// --------------
// 功能：将金额转换成中文大写
// 传入参数：
//              value： 要进行转换的金额
//              psType：转换方式  1：数字转换   0：人民币币转换
// 传出结果：   转换后的结果
// *********************************************************************************** //
function changeCurrencyToBig(value,psType)
{
	var intFen,i;
	var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;

	if(trim(value)=="")   //数据为空时返回"零"
		return "零";
	if (isNaN(value))   //数据非法时提示，并返回空串
	{
		strErr = "数据"+value+"非法！"
		alert(strErr);
		return "";
	}
	strCheck = value+".";
	strArr = strCheck.split(".");
	strCheck = strArr[0];
	if(strCheck.length>12)   //数据大于等于一万亿时提示无法处理
	{
		strErr = "数据"+value+"过大，无法处理！"
		alert(strErr);
		return "";
	}
	try
	{
		i = 0;
		strBig = "";
		intFen = value*100;          //转换为以分为单位的数值
		strFen = intFen.toString();
		strArr = strFen.split(".");
		strFen = strArr[0];
		intFen = strFen.length;      //获取长度
		strArr = strFen.split("");	//将各个数值分解到数组内
		while(intFen!=0)   //分解并转换
		{
			i = i+1;
			switch(i)              //选择单位
			{
				case 1:strDW = "分";break;
				case 2:strDW = "角";break;
				case 3:strDW = "元";break;
				case 4:strDW = "拾";break;
				case 5:strDW = "佰";break;
				case 6:strDW = "仟";break;
				case 7:strDW = "万";break;
				case 8:strDW = "拾";break;
				case 9:strDW = "佰";break;
				case 10:strDW = "仟";break;
				case 11:strDW = "亿";break;
				case 12:strDW = "拾";break;
				case 13:strDW = "佰";break;
				case 14:strDW = "仟";break;
			}
			switch (strArr[intFen-1])              //选择数字
			{
				case "1":strNum = "壹";break;
				case "2":strNum = "贰";break;
				case "3":strNum = "叁";break;
				case "4":strNum = "肆";break;
				case "5":strNum = "伍";break;
				case "6":strNum = "陆";break;
				case "7":strNum = "柒";break;
				case "8":strNum = "捌";break;
				case "9":strNum = "玖";break;
				case "0":strNum = "零";break;
			}

			//处理特殊情况
			strNow = strBig.split("");
			//分为零时的情况
			if((i==1)&&(strArr[intFen-1]=="0"))
				strBig = "整";
			//角为零时的情况
			else if((i==2)&&(strArr[intFen-1]=="0"))
			{    //角分同时为零时的情况
				if(strBig!="整")
					strBig = "零"+strBig;
			}
			//元为零的情况
			else if((i==3)&&(strArr[intFen-1]=="0"))
				strBig = "元"+strBig;
			//拾－仟中一位为零且其前一位（元以上）不为零的情况时补零
			else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元"))
				strBig = "零"+strBig;
			//拾－仟中一位为零且其前一位（元以上）也为零的情况时跨过
			else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
				{} 
			//拾－仟中一位为零且其前一位是元且为零的情况时跨过
			else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元"))
				{}
			//当万为零时必须补上万字
			else if((i==7)&&(strArr[intFen-1]=="0"))
				strBig ="万"+strBig;
			//拾万－仟万中一位为零且其前一位（万以上）不为零的情况时补零
			else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万"))
				strBig = "零"+strBig;
			//拾万－仟万中一位为零且其前一位（万以上）也为零的情况时跨过
			else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万"))
				{}
			//拾万－仟万中一位为零且其前一位为万位且为零的情况时跨过
			else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
				{}
			//万位为零且存在仟位和十万以上时，在万仟间补零
			else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
				strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length);
			//单独处理亿位
			else if(i==11)
			{
				//亿位为零且万全为零存在仟位时，去掉万补为零
				if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
					strBig ="亿"+"零"+strBig.substring(1,strBig.length);
				//亿位为零且万全为零不存在仟位时，去掉万
				else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟"))
					strBig ="亿"+strBig.substring(1,strBig.length);
				//亿位不为零且万全为零存在仟位时，去掉万补为零
				else if((strNow[0]=="万")&&(strNow[2]=="仟"))
					strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length);
				//亿位不为零且万全为零不存在仟位时，去掉万	
				else if((strNow[0]=="万")&&(strNow[2]!="仟"))
					strBig = strNum+strDW+strBig.substring(1,strBig.length);	
				//其他正常情况
				else
						strBig = strNum+strDW+strBig;
			}
			//拾亿－仟亿中一位为零且其前一位（亿以上）不为零的情况时补零
			else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿"))
				strBig = "零"+strBig;
			//拾亿－仟亿中一位为零且其前一位（亿以上）也为零的情况时跨过
			else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿"))
				{}
			//拾亿－仟亿中一位为零且其前一位为亿位且为零的情况时跨过
			else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
				{}
			//亿位为零且不存在仟万位和十亿以上时去掉上次写入的零
			else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟"))
				strBig = strNum+strDW+strBig.substring(1,strBig.length);
			//亿位为零且存在仟万位和十亿以上时，在亿仟万间补零
			else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟"))
				strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length);
			else
				strBig = strNum+strDW+strBig;
			strFen = strFen.substring(0,intFen-1);
			intFen = strFen.length;
			strArr = strFen.split("");
		}
		
		//按货币转换，但是如果不需要货币则替换掉
		if (psType == "1")
		{
		  if ((strBig.indexOf("角")<0)&&(strBig.indexOf("分")<0))
		  	strBig = strBig.replace("元","");
		  else
		  	strBig = strBig.replace("元","点");
		  strBig = strBig.replace("整","");
		  strBig = strBig.replace("角","");
		  strBig = strBig.replace("分","");
		}
		return strBig;
	}catch(err){
		return "";      //若失败则返回原值
	}	
}
// *********************************************************************************** //
// function formatDate(value,modal)
// --------------
// 功能：将11位的日期转化为8位的字符串
// 传入参数：
//              value： 要进行格式化的日期串（11位 YYYY-MM-DD...）
//				modal:  输入格式号
//					1:YYYY-MM-DD
//					2:MM-DD-YYYY
//					3:DD-MM-YYYY
//					4:YYYY-DD-MM
// 传出结果：   格式化后的字符串（8位 YYYYMMDD）
// 完成日期：   2001年5月21日
// *********************************************************************************** //
function formatDate(value,modal)
{
	var strYear,strMonth,strDay,strDate;
	var strValue,intlong;

	if((trim(value)=="")||(trim(modal)==""))   //日期为空时返回
		return "00000000";
	strValue = value;
	if(trim(modal)=="1")     //处理1：YYYY-MM-DD的情况
	{
		strYear = strValue.substring(0,4);
		strMonth = strValue.substring(5,7);
		strDay = strValue.substring(8,10);
		strDate = strYear+strMonth+strDay;
	}
	else if(trim(modal)=="2")        //处理2：MM-DD-YYYY的情况
	{
		strYear = strValue.substring(6,10);
		strMonth = strValue.substring(0,2);
		strDay = strValue.substring(3,5);
		strDate = strYear+strMonth+strDay;
	}
	else if(trim(modal)=="3")		//处理3：DD-MM-YYYY的情况
	{
		strYear = strValue.substring(6,10);
		strMonth = strValue.substring(3,5);
		strDay = strValue.substring(0,2);
		strDate = strYear+strMonth+strDay;
	}
	else if(trim(modal)=="4")       //处理4：YYYY-DD-MM的情况
	{
		strYear = strValue.substring(0,4);
		strMonth = strValue.substring(8,10);
		strDay = strValue.substring(5,7);
		strDate = strYear+strMonth+strDay;
	}
	else						//若有其他情况则返回
	{
		strDate = "00000000";
	}
	intlong = strDate.length;
	if ((intlong!=8)||(isNaN(strDate)))    //日期非法时提示，并返回
	{
		strErr = "日期"+value+"转换时有错误！";
		alert(strErr);
		return "00000000";
	}
	return strDate;
}


// *********************************************************************************** //
// function unFormatDate(value,formatstring)
// --------------
// 功能：将标准化的日期（YYYYMMDD）格式化成指定字符分割的日期格式（比如YYYY-MM-DD）
// 传入参数：   value： 要进行格式化的日期串（8位 YYYYMMDD）
//				formatstring：格式化方式（11位 年：YYYY，月：MM，日：DD）
// 传出结果：   格式化后的字符串（YYYY/MM/DD...）
// 完成日期：   2001年5月22日
// *********************************************************************************** //
function unFormatDate(value,formatstring)
{
	var strDate,strDay,strMonth,strYear;
	var strFirst,strSecond,strLast,strFGet;
	var strErr,strMid1,strMid2;
	var intlong;

	strDate = trim(value);
	intlong = strDate.length;
	if ((intlong!=8)||(isNaN(strDate)))    //数据非法时提示，并返回空串
	{
		strErr = "日期"+strDate+"有错误！";
		alert(strErr);
		return "";
	}
	strYear = strDate.substring(0,4);    //拆解字符串
	strMonth = strDate.substring(4,6);
	strDay = strDate.substring(6,8);

	strDate = trim(formatstring);
	if(strDate=="")                    //字符串为空时默认“YYYY年MM月DD日”格式
	{
		strFGet = strYear+"年"+strMonth+"月"+strDay+"日";
		return strFGet;
	}

	strFirst = strDate.substring(0,1);
	if(strFirst=="Y")               //年在前的情况
	{
		strSecond = strDate.substring(5,6);
		strLast = strDate.substring(8,9);
		strMid1 = strDate.substring(4,5);
		strMid2 = strDate.substring(7,8);
		if(strMid1!=strMid2)      //前后间隔不统一时默认“YYYY－MM－DD”格式
		{
			strFGet = strYear+"-"+strMonth+"-"+strDay;
			return strFGet;
		}
		if((strSecond=="M")&&(strLast=="D"))    //“YYYY＃MM＃DD”格式
		{
			strFGet = strYear+strMid1+strMonth+strMid1+strDay;
			return strFGet;
		}
		else if((strSecond=="D")&&(strLast=="M"))   //“YYYY＃DD＃MM”格式
		{
			strFGet = strYear+strMid1+strDay+strMid1+strMonth;
			return strFGet;
		}
		else              //有错误出现时默认“YYYY-MM-DD”格式
		{
			strFGet = strYear+"-"+strMonth+"-"+strDay;
			return strFGet;
		}
	}
	else if((strFirst=="M")||(strFirst=="D"))  //年在后的情况
	{
		strSecond = strDate.substring(3,4);
		strLast = strDate.substring(6,7);
		strMid1 = strDate.substring(2,3);
		strMid2 = strDate.substring(5,6);
		if(strMid1!=strMid2)      //前后间隔不统一时默认“MM－DD-YYYY”格式
		{
			strFGet = strMonth+"-"+strDay+"-"+strYear;
			return strFGet;
		}
		if((strFirst=="M")&&(strSecond=="D"))      //“MM-DD-YYYY”格式
		{
			strFGet = strMonth+strMid1+strDay+strMid1+strYear;
			return strFGet;
		}
		else if((strFirst=="D")&&(strSecond=="M"))   //“DD-MM-YYYY”格式
		{
			strFGet = strDay+strMid1+strMonth+strMid1+strYear;
			return strFGet;
		}
		else             //有错误出现时默认“MM－DD-YYYY”格式
		{
			strFGet = strMonth+"-"+strDay+"-"+strYear;
			return strFGet;
		}
	}
	else               //有错误出现时默认“YYYY-MM-DD”格式
	{
		strFGet = strYear+"-"+strMonth+"-"+strDay;
		return strFGet;
	}
}
// **************************************************************** //
// function trim(value)
// --------------
// 功能：删除两端空格（= trim）
// 参数：       value 要格式化的字符串
// 返回：       格式化后的字符串
// **************************************************************** //
function trim(value)
{
	var res = String(value).replace(/^[\s]+|[\s]+$/g,'');
	return res;
}
// *********************************************************************************** //
// function getMainPath()
// --------------
// 功能：返回系统主页的完整路径
// 传出结果：    系统主页的完整路径
// *********************************************************************************** //
function getMainPath()
{
	return GetVirtualPath()+"MainLogin.aspx";	//返回主页
}

// *********************************************************************************** //
// function getVirtualPath()
// --------------
// 功能：返回虚拟目录的路径，形如："/drp/"
// 传出结果：    虚拟目录的路径
// *********************************************************************************** //
function getVirtualPath()
{
	var p = window.location.pathname;				//取当前页地址
	if(p.substring(0,1)!="/")
		p = "/"+p;
	var str = p.replace(/^[/]\w*[/]/,"");			//将虚拟目录从字符串中清除
	return p.substring(0,p.length - str.length);	//返回虚拟目录
}

// *********************************************************************************** //
// function exitCurrentPage()
// --------------
// 功能：关闭当前页面
// 传出结果：    
// *********************************************************************************** //
function exitCurrentPage()
{
   	window.returnValue = false;
	window.opener = null;
	window.close();	
	return false;
}
// *********************************************************************************** //
// function popWelcomeInfo 右键欢迎信息()
// --------------
// 功能：右键欢迎信息
// 传出结果：    
// *********************************************************************************** //
function popWelcomeInfo()
{
	var keyC = window.event.button;
	if (keyC==2)
	{
		alert("提示信息！");
		return false;
	}
}
// *********************************************************************************** //
// function isDigit 检查输入是否全部为数字()
// --------------
// 功能：检查输入是否全部为数字
// 传出结果：    
// *********************************************************************************** //
function isDigit(s)   
{   
    var patrn=/^[0-9]{1,20}$/;   
    if (!patrn.exec(s)) return false  
    return true  
}   

// *********************************************************************************** //
// function OpenDivMask()
// --------------
// 功能：打开遮挡层同时把下拉筐隐藏
// 传出结果：    
// *********************************************************************************** //
function OpenDivMask()
{	
    var divMask = document.getElementById("DivMask");
    if(!divMask){
        divMask = document.createElement("div");
        divMask.id = "DivMask";	
        divMask.style.display = "block";
        divMask.style.top = divMask.style.left = divMask.style.margin = divMask.style.padding = "0px";
        var screenWidth;
	    var screenHeight;
	    if(document.body.scrollHeight<document.documentElement.offsetHeight){
		    screenHeight = document.documentElement.offsetHeight + "px";
	    }
	    else{
		    screenHeight = document.body.scrollHeight + "px";
	    }
	    if(document.body.scrollWidth<document.documentElement.offsetWidthh){
		    screenWidth = document.documentElement.offsetWidth + "px";
	    }
	    else{
		    screenWidth = document.body.scrollWidth + "px";
	    }	
	    divMask.style.width      = screenWidth;
	    divMask.style.height     = screenHeight;
	    divMask.style.position   = "absolute";
	    divMask.style.zIndex     = "99";
	    divMask.style.background = "#D3D3D3";
	    divMask.style.filter     = "alpha(opacity=50)";
	    divMask.style.opacity    = 50/100;
	    divMask.style.MozOpacity = 50/100;	
	    document.body.appendChild(divMask);	
	}else{
	    divMask.style.display = "block";
	}	
	//屏蔽SELECT
	var allselect = document.getElementsByTagName("select");
	if (allselect != null && allselect.length > 0){
	    for (var i=0; i<allselect.length; i++){ 
		        allselect[i].style.visibility = "hidden";
        }
    }
}
// *********************************************************************************** //
// function OpenDivMask()
// --------------
// 功能：关闭遮挡层同时把下拉筐显示
// 传出结果：    
// *********************************************************************************** //
function CloseDivMask()
{
	var objDialog = document.getElementById("DivMask");
	if (objDialog) objDialog.style.display = "none";
	//屏蔽SELECT
	var allselect = document.getElementsByTagName("select");
	if (allselect != null && allselect.length > 0){
	    for (var i=0; i<allselect.length; i++){
		    allselect[i].style.visibility = "visible";
        }
    }	     	           
}
// *********************************************************************************** //
// function ChangeForeColor()
// --------------
// 功能：改变字体颜色
// 传出结果：    
// *********************************************************************************** //
function ChangeForeColor(src,color){
   src.style.color = color;
}

////////////////added by jeron 20090514
function gid(id)
{
	return document.getElementById?document.getElementById(id):null;
}
function gname(name)
{
	return document.getElementsByTagName?document.getElementsByTagName(name):new Array();
}
function Browser()
{
	var ua, s, i;
	this.isIE = false;
	this.isNS = false;
	this.isOP = false;
	this.isSF = false;
	ua = navigator.userAgent.toLowerCase();
	s = "opera";
	if ((i = ua.indexOf(s)) >= 0){this.isOP = true;return;}
	s = "msie";
	if ((i = ua.indexOf(s)) >= 0) {this.isIE = true;return;}
	s = "netscape6/";
	if ((i = ua.indexOf(s)) >= 0) {this.isNS = true;return;}
	s = "gecko";
	if ((i = ua.indexOf(s)) >= 0) {this.isNS = true;return;}
	s = "safari";
	if ((i = ua.indexOf(s)) >= 0) {this.isSF = true;return;}
}
function CloseDivMask( DIV)
{   
    var objdiv = document.getElementById(DIV);
    if (objdiv) objdiv.style.display = "none";
	var objDialog = document.getElementById("DivMask");
	if (objDialog) objDialog.style.display = "none";
	var allselect = gname("select");
	for (var i=0; i<allselect.length; i++) 
		allselect[i].style.visibility = "visible";          
}
function OpenDivMask()
{

	var browser = new Browser();
	var objScreen = gid("DivMask");
	if(!objScreen)
		var objScreen = document.createElement("div");
	var oS = objScreen.style;
	objScreen.id = "DivMask";
	oS.display = "block";
	oS.top = oS.left = oS.margin = oS.padding = "0px";
	var wh;
	var hg
	if(document.body.scrollHeight<document.documentElement.offsetHeight)
	{
		 hg = document.documentElement.offsetHeight + "px";
	}
	else
	{
		hg = document.body.scrollHeight + "px";
	}
	if(document.body.scrollWidth<document.documentElement.offsetWidthh)
	{
		 wh = document.documentElement.offsetWidth + "px";
	}
	else
	{
		wh = document.body.scrollWidth + "px";
	}
	
	oS.width = wh;
	oS.height = hg;
	oS.position = "absolute";
	oS.zIndex = "99";
	if ((!browser.isSF) && (!browser.isOP))
	{
		oS.background = "#D3D3D3";
	}
	else
	{
		oS.background = "#D3D3D3";
	}
	oS.filter = "alpha(opacity=50)";
	oS.opacity = 50/100;
	oS.MozOpacity = 50/100;
	document.body.appendChild(objScreen);
	var allselect = gname("select");
	for (var i=0; i<allselect.length; i++)
	 {
	//关键字二次排序遮蔽层时dropdownlist特殊处理
      if (allselect[i].id.indexOf("Keyword1")<0 && allselect[i].id.indexOf("Keyword2")<0 && allselect[i].id.indexOf("Keyword3")<0)
        {
	        allselect[i].style.visibility = "hidden";
	    }
	 }
}
function CloseDiv(DIV)
{
    CloseDivMask(DIV);
}
//构造去掉空格函数
String.prototype.trim=function()
{
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
} 

//added by jeron 20090512 
function showEmailError_one(objbtn,Msg){  
   
     var btn=objbtn;
     var t=objbtn.offsetTop;  
     var l=objbtn.offsetLeft;  
     var h=objbtn.offsetHeight;  
     var w=objbtn.offsetWidth;    
     while(objbtn=objbtn.offsetParent) 
     {  
      t+=objbtn.offsetTop;  
      l+=objbtn.offsetLeft;  
     }  
     document.getElementById("EmailErrShow").style.visibility="";
     document.getElementById("EmailErrShow").style.top=t +h+ "px";
    
     //document.getElementById("EmailErrShow").style.left=l+w+"px";
     document.getElementById("EmailErrShow").style.right=w+"px";
     document.getElementById("EmailErrShow").style.display = "block";
     //alert(Msg);
     document.getElementById("LabelEmailError").innerHTML=Msg
     OpenDivMask();
     document.getElementById("EmailErrShow").focus();//added by jeron 20090720
}


//added by jeron 20090519 中文信息中的Email验证*******
function showEmailError_oneC(objbtn,Msg){  
   
     var btn=objbtn;
     var t=objbtn.offsetTop;  
     var l=objbtn.offsetLeft;  
     var h=objbtn.offsetHeight;  
     var w=objbtn.offsetWidth;    
     while(objbtn=objbtn.offsetParent) 
     {  
      t+=objbtn.offsetTop;  
      l+=objbtn.offsetLeft;  
     }  
     document.getElementById("EmailErrShowC").style.visibility="";
     document.getElementById("EmailErrShowC").style.top=t +h+ "px";
    
     
     document.getElementById("EmailErrShowC").style.left=l+"px";
     document.getElementById("EmailErrShowC").style.display = "block";
     
     document.getElementById("LabelEmailErrorC").innerHTML=Msg
     OpenDivMask();
     document.getElementById("EmailErrShowC").focus();//added by jeron 20090720
    
}
//added by jeron 20090519 英文信息中的Email验证*******
function showEmailError_oneE(objbtn,Msg){  
   
     var btn=objbtn;
     var t=objbtn.offsetTop;  
     var l=objbtn.offsetLeft;  
     var h=objbtn.offsetHeight;  
     var w=objbtn.offsetWidth;    
     while(objbtn=objbtn.offsetParent) 
     {  
      t+=objbtn.offsetTop;  
      l+=objbtn.offsetLeft;  
     }  
     document.getElementById("EmailErrShowE").style.visibility="";
     document.getElementById("EmailErrShowE").style.top=t +h+ "px";
    
     
     document.getElementById("EmailErrShowE").style.left=l+"px";
     document.getElementById("EmailErrShowE").style.display = "block";
     
     document.getElementById("LabelEmailErrorE").innerHTML=Msg
     OpenDivMask();
     document.getElementById("EmailErrShowE").focus();//added by jeron 20090720
    
}


//added by jeron 20090514
function chkEmail_one(objbtn)
{       
//检查是否为空

var emailValue=objbtn.value.trim();//得到Email整个串（去掉了前后空格和中间空格）

if(emailValue==""){ 
 showEmailError_one(objbtn,C_MailAddess2);
 return;
}
//if(emailValue.lastIndexOf(";")==(emailValue.length-1)){//以";"结尾	
//	emailValue=emailValue.substring(0,emailValue.length-1);	
//}

var flag=false;//标识是否是合法的Email

//var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
//var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/;
var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([A-Za-z0-9]+[-A-Za-z0-9_]*\.)+[A-Za-z]{2,}$/;//changed by chenlongwei20160622
//循环判断Email数组各个Email的合法性

	flag=RegExp(reg).test(emailValue.trim());
	if(!flag){	
		showEmailError_one(objbtn,C_MailAddess2);
		return;
	}
}



//added by jeron 20090519 中文信息中的Email验证*******
function chkEmail_oneC(objbtn)
{       
var msg="";
if(objbtn.name=="txtEmailAddr1C"||objbtn.name=="txtEmailC"){
    msg=emailMsgC1;
}
//检查是否为空
var emailValue=objbtn.value.trim();//得到Email整个串（去掉了前后空格和中间空格）

if(emailValue==""){ 
    //showEmailError_oneC(objbtn,msg);
    //alert(msg);
    return;
}
//if(emailValue.lastIndexOf(";")==(emailValue.length-1)){//以";"结尾	
//	emailValue=emailValue.substring(0,emailValue.length-1);	
//}

var flag=false;//标识是否是合法的Email

//var reg=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;
//var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|com|gov|mil|org|edu|int|name|asia|NET|COM|GOV|MIL|ORG|EDU|INT|NAME|ASIA)$/;
var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([A-Za-z0-9]+[-A-Za-z0-9_]*\.)+[A-Za-z]{2,}$/;//changed by chenlongwei20160622
//循环判断Email数组各个Email的合法性

	flag=RegExp(reg).test(emailValue.trim());
	if(!flag){		
		//alert("请输入有效的E-mail地址！");
					
		//showEmailError_oneC(objbtn,msg);
        alert(msg);
		return;
	}
}

//added by jeron 20090519 英文信息中的Email验证*******
function chkEmail_oneE(objbtn)
{ 
var msg="";
if(objbtn.name=="txtEmailE"){
    msg=emailMsgE1;
}
      
//检查是否为空

var emailValue=objbtn.value.trim();//得到Email整个串（去掉了前后空格和中间空格）

if(emailValue==""){ 
 //showEmailError_oneE(objbtn,msg);
 return;
}
var flag=false;//标识是否是合法的Email

var reg=/^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([A-Za-z0-9]+[-A-Za-z0-9_]*\.)+[A-Za-z]{2,}$/;//changed by chenlongwei20160622
//循环判断Email数组各个Email的合法性

	flag=RegExp(reg).test(emailValue.trim());
	if(!flag){		
		//alert("请输入有效的E-mail地址！");
					
		//showEmailError_oneE(objbtn,msg);
        alert(msg);
		return;
	}
}
//判断内容中是否含有html标签 added by linsendu 20110526
function HasHtmlTag(val)
{
    return /<[a-zA-Z!]/g.test(val);
}

//判断内容中是否含有html标签，并且用空字符替换
function DoHtmlReplace(val) {
    var temp = val.replace(/<\/?[^>]*>/g, ""); 
    temp= temp.replace(/<[a-zA-Z!]/g, "");
    temp= temp.replace(/<\/[a-zA-Z!]/g, "");
    return temp;
}

//Sample:post_to_url(window.location.href,{'pwd':'111111', 'username':'admin'});
function post_to_url(path, params, formName) {
    //如果没有特别声明，自动创建一个
    var form;
    if (formName == null)
        form = document.createElement("form");
    else
        form = document.getElementById(formName);
        
    form.setAttribute("method", "post");
    form.setAttribute("action", path);

    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);

        form.appendChild(hiddenField);
    }
    
    document.body.appendChild(form); 
    form.submit();
}


function CloseMsg(OpenMask)
{
    var msgBox = document.getElementById('p_msgbox');
    if (msgBox != null) msgBox.style.display = "none";
    if (OpenMask != null) CloseDivMask();
}

function ShowMsg(Message,Title,LanType,OpenMask)
{
    var closeTitle = "关闭";
    var okText = "确 认";
    if (LanType.toLowerCase()=="en-us")
    {
        closeTitle = "Close";
        okText = "Confirm";
    }
    var msgBox = document.getElementById('p_msgbox');
    if (msgBox == null){
        var boarddiv = "<div style='z-index: 501; position: absolute;width: 250px;' id ='p_msgbox'></div>"; 
        $(document.body).append(boarddiv); 
        msgBox = document.getElementById('p_msgbox');
    }
    var html = "<table cellpadding='0' cellspacing='0' class='inbox_table3'>";
    html +="<tr><td class='inbox_td23'><p class='inbox_p4'>" + Title + "</p><p class='inbox_p5'><img alt='"+closeTitle+"' src='"+GLOBAL_IMAGEPATH+"inbox/layerClose.gif' onclick=\"CloseMsg("+OpenMask+")\" style='vertical-align: middle;cursor: pointer;' /></p></td></tr>";
    html +="<tr><td style='padding: 10px;' align='center'>" + Message + "</td></tr>";
    html +="<tr><td style='background-image: url("+GLOBAL_IMAGEPATH+"inbox/dot_line_gray.gif); width: 100%;height: 2px;'></td></tr>";
    html +="<tr><td style='height: 30px; vertical-align: middle; text-align: center;'><input id='btnWarnOk' type='button' class='inbox_btnimg2' title='"+okText+"' value='"+okText+"' onclick=\"CloseMsg("+OpenMask+")\" /></td></tr>";
    html +="</table>";
    msgBox.innerHTML = html;
    msgBox.style.display = "";

    // 层窗口居中显示
    MoveToCenter(msgBox);
         
    // 打开遮罩层
    if (OpenMask)
        OpenDivMask();
}



function ShowRefreshMsg(Message, Title, LanType, OpenMask,TdWidth) {
    var closeTitle = "关闭";
    var okText = "确 认";
    if (LanType.toLowerCase() == "en-us") {
        closeTitle = "Close";
        okText = "Confirm";
    }
    var msgBox = document.getElementById('p_msgbox');
    if (msgBox == null) {
        var boarddiv = "<div style='z-index: 501; position: absolute;width: 380px;' id ='p_msgbox'></div>";
        $(document.body).append(boarddiv);
        msgBox = document.getElementById('p_msgbox');
    }
    var html = "<table cellpadding='0' cellspacing='0' class='inbox_table3'>";
    html += "<tr><td class='inbox_td23'><p class='inbox_p4'>" + Title + "</p><p class='inbox_p5'><img alt='" + closeTitle + "' src='"+GLOBAL_IMAGEPATH+"inbox/layerClose.gif' onclick=\"CloseMsg(" + OpenMask + ")\" style='vertical-align: middle;cursor: pointer;' /></p></td></tr>";
    html += "<tr><td style='WIDTH: "+TdWidth+"px;height:120px;' align='center'>" + Message + "<DIV style=\"WIDTH: 100px; padding:20px 25px 10px 0px;FLOAT: right;\"><DIV><IMG src=\""+GLOBAL_IMAGEPATH+"jobs/wcapp_code.png\"></DIV><P style='padding-top:5px;color: #ff0000;'>"+strsurprise+"</P></DIV></td></tr>";
    html += "<tr><td style='background-image: url("+GLOBAL_IMAGEPATH+"inbox/dot_line_gray.gif); width: 100%;height: 2px;'></td></tr>";
    html += "<tr><td style='height: 30px; vertical-align: middle; text-align: center;'><input id='btnWarnOk' type='button' class='inbox_btnimg2' title='" + okText + "' value='" + okText + "' onclick=\"CloseMsg(" + OpenMask + ")\" /></td></tr>";
    html += "</table>";
    msgBox.innerHTML = html;
    msgBox.style.display = "";

    // 层窗口居中显示
    MoveToCenter(msgBox);

    // 打开遮罩层
    if (OpenMask)
        OpenDivMask();
}

// 获取窗口及浏览器的宽度和高度
pageWidthHeight=function(){
    return{
        scrollTop:function(){return document.body.scrollTop||document.documentElement.scrollTop},
        width:function(){return self.innerWidth||(document.documentElement.clientWidth||document.body.clientWidth)},
        height:function(){return self.innerHeight||(document.documentElement.clientHeight||document.body.clientHeight)},
        pageHeight:function(){
	        var d=document, b=d.body, e=d.documentElement;
	        return Math.max(Math.max(b.scrollHeight,e.scrollHeight),Math.max(b.clientHeight,e.clientHeight))
        },
        pageWidth:function(){
	        var d=document, b=d.body, e=d.documentElement;
	        return Math.max(Math.max(b.scrollWidth,e.scrollWidth),Math.max(b.clientWidth,e.clientWidth))
        }
    }
}();

function MoveToCenter(box,width,height){     
    var cw=pageWidthHeight.width();
    var ch=pageWidthHeight.height();
    var sh=pageWidthHeight.scrollTop();
    var sl=document.documentElement.scrollLeft;
    var boxw=(box.offsetWidth||500);
    if(parseInt(width)>0){
        boxw=width>=500?500:width;
    }
    var boxh=(box.offsetHeight||230);
    if(parseInt(height)>0){
        boxh=height>=230?230:height;
    }        
    box.style.left='50%';
    box.style.top=(parseInt(ch)/2+sh)+'px';
    box.style.marginTop=-(parseInt(boxh)/2)+'px';
    box.style.marginLeft=-(parseInt(boxw)/2)+'px';
}
//js获取url参数方法
function GetUrlQuerystring(paras){
    var url = location.href;
    var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");
    var paraObj = {}
    for (i=0; j=paraString[i]; i++){
        paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=")+1,j.length);
    }
    var returnValue = paraObj[paras.toLowerCase()];
    if(typeof(returnValue)=="undefined"){
        return "";
    }else{
        return returnValue;
    }
} 


// *********************************************************************************** //
// function IsContainsChinese(value)
// -----------
// 功能：字符是否是中文、全角字符
// 作者：peggy 20120830 
// 传入参数：
// value：要进行检查的字符串
// 返回值：true: 包含中文/全角字符  false：不包含
// *********************************************************************************** //
function IsContainsChinese(value)  
{ 
    var ch, i;
    for (i=0; i< value.length; i++){
        ch = value.charCodeAt(i);
        if(ch<0) ch = ch + 65536;
        if(ch>255) return true;
    }
    
    return false;
}

// 禁用网址
var forbiddenurl_array		= new Array();
//注意：网止全部小写
forbiddenurl_array[0]		= 'zhaopin.com';
forbiddenurl_array[1]		= 'chinahr.com';
forbiddenurl_array[2]		= 'cjol.com';
forbiddenurl_array[3]		= '58.com';
forbiddenurl_array[4]		= 'ganji.com';
forbiddenurl_array[5]		= 'dajie.com';
forbiddenurl_array[6]		= 'baijob.com';
forbiddenurl_array[7]		= '104china.com';
forbiddenurl_array[8]		= 'hirede.com';
//forbiddenurl_array[9]		= 'yingjiesheng.com';//modify by linsen.du 20140929 removeit
forbiddenurl_array[9]		= 'ganji.cn';
forbiddenurl_array[10]		= 'jobcn.com';
forbiddenurl_array[11]		= 'job168.com';
forbiddenurl_array[12]		= 'job001.cn';
forbiddenurl_array[13]		= 'an9.com';
forbiddenurl_array[14]		= 'zhaopin.cn';
forbiddenurl_array[15]		= 'chinahr.cn';
// *********************************************************************************** //
// function IsForbiddenUrl(value,type)
// -----------
// 功能：是否是禁用Url
// 作者：peggy 20120830 
// 传入参数：
// value：要进行检查的字符串
// type：验证类型 url--网址；email--邮箱
// 返回值：true: 禁用网址  false：非禁用网址
// *********************************************************************************** //
function IsForbiddenUrl(value,type)
{
	var val = trim(value);       // 去2边空格
	val = ToHalfCharacter(val);  // 全角转半角
	val = val.toLowerCase();     // 全转小写
	if(type.toLowerCase() == "url")
	{
       if(typeof(strForbiddenUrl)!="undefined"){
            if(strForbiddenUrl!= ""){
               forbiddenurl_array=strForbiddenUrl.split(',');
            }
            else{
              return false;
            }
        }
    	// 判断网址是否禁用
	    for(var i = 0; i < forbiddenurl_array.length; i++)
	    {
	        if(val.indexOf(forbiddenurl_array[i]) > -1) return true;
	    }
	}
	else if(type.toLowerCase() == "email")
	{
		var pos = val.indexOf('@');
        if(pos > -1)
        {
	        val= val.substr(pos).toLowerCase();
        }
	    for(var i = 0; i < forbiddenurl_array.length; i++)
	    {
	        if(val.indexOf('@'+forbiddenurl_array[i]) > -1) return true;
	        if(val.indexOf('.'+forbiddenurl_array[i]) > -1) return true;
	    }
	}
    return false;
}

// *********************************************************************************** //
// function ToHalfCharacter(val)
// -----------
// 功能：全角转半角
// 作者：peggy 20120830 
// 传入参数：
// value：要进行检查的字符串
// 返回值：转换后字符串
// *********************************************************************************** //
function ToHalfCharacter(val){ 

　　var result="";
　　for (var i = 0; i < val.length; i++){
　　　if (val.charCodeAt(i)==12288){
　　　　result+= String.fromCharCode(val.charCodeAt(i)-12256);
　　　　continue;
　　　}
　　　if (val.charCodeAt(i)>65280 && val.charCodeAt(i)<65375) result+= String.fromCharCode(val.charCodeAt(i)-65248);
　　　else result+= String.fromCharCode(val.charCodeAt(i));
　　}
　　return result;
　} 
　
// *********************************************************************************** //
// function isLegalName(str)
// -----------
// 功能：检查是否为合法字符
// 作者：Lisa Chen 2012-09-03 
// 传入参数：str要检查的字符串
// 返回值：bool
// *********************************************************************************** //
function isLegalName(str)
{
	var str_use_sign	= " #&()+-./\\,:　—，、：（）_[]《》";
	var arr_use_sign	= new Array();
	for(var i=0;i<str_use_sign.length;i++)
	{
		arr_use_sign[i]	= str_use_sign.charCodeAt(i);
	}
	
	for(var i=0;i<str.length;i++)
	{
		if( !isCharCodeValid(str.charCodeAt(i),arr_use_sign) ) return false;
	}
	return true;
}

// *********************************************************************************** //
// function isCharCodeValid(code,arr)
// -----------
// 功能：单个检查char字符是否为合法字符
// 作者：Lisa Chen 2012-09-03 
// 传入参数：code单个char字符，合法的特殊字符数组
// 返回值：bool
// *********************************************************************************** //
function isCharCodeValid(code,arr)
{   
	//合法的字符
	if(in_arr(arr,code))				return true;
	//数字
	if(code >= 48 && code <= 57)		return true;
	//大写字母
	if(code >= 65 && code <= 90)		return true;
	//小写字母
	if(code >= 97 && code <= 122)		return true;
	//中文 日文 韩文
	if(code >= 12353 && code <= 65071)	return true;
	//日文片假名小写
	if(code >= 65328 && code <= 65439)	return true;
	return false;
}

// *********************************************************************************** //
// function in_arr(arr,val)
// -----------
// 功能：查看val是否存在于arr数组中
// 作者：Lisa Chen 2012-09-03 
// 传入参数：arr数组，val单个需检测的值
// 返回值：bool
// *********************************************************************************** //
function in_arr(arr,val)
{
	for(var i = 0; i < arr.length; i++)
	{
		if(arr[i] == val) return true;
	}
	return false;
}
/*字符串格式化方法 by huangpeng 20121127*/
String.prototype.format = function() {
	var a = arguments;
	return this.replace(/\{(\d+)\}/g,
	function(e, f) {
		return a[f];
	});
}
/*只允许输入数字(@param event:事件) by huangpeng 20121127*/
function onlyNum(event) {
	event = event || window.event;
	if (!window.event) event.charCode == 35 || event.charCode == 45 || event.charCode == 0 || (event.charCode < 47 || event.charCode > 57) && event.preventDefault();
	else if (! (event.keyCode == 35 || event.keyCode == 45)) if (event.keyCode < 47 || event.keyCode > 57) window.event.returnValue = !1;
}
/*返回对象 by huangpeng 20121127*/
function getId() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string') element = document.getElementById(element);
		if (arguments.length == 1) return element;
		elements.push(element);
	}
	return elements;
}
/*定位鼠标到文本框最后(@param text:文本框) by huangpeng 20121127*/
function posMouseToLast(text) {
	if (text && (text = getId(text))) {
		if (text.setSelectionRange) {
			text.setSelectionRange(text.value.length, text.value.length);
			text.focus();
		} else {
			text.createTextRange && (text = text.createTextRange(), text.collapse(!1), text.select());
		}
	}
}
/*弹层屏幕居中(@param id:弹层id[带#号]) by huangpeng 20121127*/
function centerDialog(id) {
	if (id) {
		var a = $("div.ui-dialog").has("{0}".format(id));
		a.css({
			top: (($(window).height() - a.outerHeight()) / 2) + $(window).scrollTop() + "px",
			left: (($(window).width() - a.outerWidth()) / 2) + $(window).scrollLeft() + "px"
		});
	}
}
/*自定义消息弹出框[alert、confirm] by huangpeng 20121127*/
window.dialog = {
	cancel: "取消",
	id: 'dialogBox',
	title: "消息",
	sumbit: "确定",
	isCenter: true,
	/*警告弹出框(@param msg:提示信息,@param optIsAutoClose:是否自动关闭弹出层[2秒自动关闭][可选],@param optCallBack:回调函数[可选])*/
	alert: function(msg, optIsAutoClose, optCallBack) {
		var a = this.init(),
		b = {};
		b[this.sumbit] = function() {
			$(this).dialog('close');
		};
		a.dialog('option', 'buttons', b);
		a.dialog('option', 'close',
		function() {
			optCallBack && optCallBack();
		});
		a.html(msg).dialog('open');
		optIsAutoClose && this.timeClose();
		return !1;
	},
	/*关闭弹出框*/
	close: function() {
		$('#{0}'.format(this.id)).is(':visible') && $('#{0}'.format(this.id)).dialog('close');
		this.t && clearTimeout(this.t);
	},
	/*确认弹出框(@param msg:提示信息,@param optCallBack:回调函数[可选])*/
	confirm: function(msg, optCallBack) {
		var a = this.init(),
		b = {};
		b[this.sumbit] = function() {
			$(this).dialog('close');
			optCallBack && optCallBack();
		};
		b[this.cancel] = function() {
			$(this).dialog('close');
		};
		a.dialog('option', 'buttons', b);
		a.dialog('option', 'close', null);
		a.html(msg).dialog('open');
	},
	init: function() {
		var a = $('#{0}'.format(this.id)),
	    style = this.isCenter ? "text-align:center;padding:35px 0 0 0;": "padding:35px;";
		a.length == 0 && (a = $("<div id='{0}' style='" + style + "'></div>".format(this.id)).appendTo('body'), a.dialog({
			title: this.title,
			bgiframe: !0,
			modal: !0,
			autoOpen: !1,
			draggable: !1,
			resizable: !1,
			width: 400,
			resizable: !1
		}));
		return a;
	},
	/*2秒后关闭弹出框*/
	timeClose: function() {
		this.t = setTimeout(function() {
			dialog.close()
		},
		2E3);
	}
}
/*根据文本的字数是否超限制，增加...(@param value:文本,@param len:截取字段长度)*/
function getSubBytes(value, len) {
	if (len && (getStrLength(value) > len)) {
		len -= 2; // 长度减少2
		for (var j = 0,
		text = "",
		i = 0; i < value.length; i++) {
			value.charCodeAt(i) > 255 ? j += 2 : j++;
			if (j > len) return "<span title='{0}'>{1}...</span>".format(value.replace(/'/g, "&acute;"), htmlEncode(text));
			text += value.charAt(i);
		}
	}
	return htmlEncode(value);
}
/*编码文字(@param input:文字)*/
function htmlEncode(input) {
	var div = document.createElement("div");
	var text = document.createTextNode(input);
	div.appendChild(text);
	var output = div.innerHTML;
	div = null;
	return output;
}

//获得当前页面大小
function getPageSize()
{
    var winH;
    if (window.innerHeight) {
       winH = window.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) {
       winH = document.documentElement.clientHeight;
    }
    else if (document.body) {
       winH = document.body.clientHeight;
    };
    return { WinH: winH };
}
//设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
function getPageScroll()
{
    var y;
    if (window.pageYOffset) {
        y = window.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        y = document.documentElement.scrollTop;
    }
    else if (document.body) {
        y = document.body.scrollTop;
    };
    return { Y: y };
}
//获取元素到顶部body的距离
function getOffsetTop(el)
{
    if(typeof(el)=="undefined")
    {
        return;
    }
    var t = el.offsetTop;
    while (el = el.offsetParent) {
        t += el.offsetTop;
    };
    return t;
}
//添加事件
function addEvent(el,type,fn)
{
    if (window.addEventListener) {
        el.addEventListener(type, fn, false);
    }
    else if (window.attachEvent) {
        el.attachEvent('on' + type, fn);
    }
    else {
        el['on' + type] = fn;
    };
}

//添加事件
function addEvent(el,type,fn)
{
    if (window.addEventListener) {
        el.addEventListener(type, fn, false);
    }
    else if (window.attachEvent) {
        el.attachEvent('on' + type, fn);
    }
    else {
        el['on' + type] = fn;
    };
}

/**
 * 验证文件是否为图片
 * @param {object} file[文件UI]
 * @param {object|null} out[输出对象]
 * @return boolean
 */
function checkIsImage(file, out) {
	var IMAGE_EXT = 'BMP|GIF|JPG|JPEG|PNG',
	fileName = trim(file.value);
	out = out || {};
	var lang = undefined == muti_language ? {}: muti_language;
	if (0 === fileName.length) {
		out.msg = lang.EMPTY_FILE;
		return ! 1;
	}

	var fileExtIndex = fileName.lastIndexOf('.');
	if (fileExtIndex > -1) {
		var extend = fileName.substring(fileExtIndex + 1).toUpperCase();
		if (in_arr(IMAGE_EXT.split('|'), extend)) {
			return ! 0;
		}
	}

	out.msg = lang.FILE_FORMAT_ERROR;
	return ! 1;
}

//maskId可有可无，默认为DivBoxMask
function autoChangeMaskPostion(popId,maskId) {
    var mask;
    if( maskId) mask =$("#"+maskId);
    else mask=$("#DivBoxMask");
    var popIds = popId.split(",");
    if (mask && mask.css('display') != 'none') {
        mask.css({ 'height': $(document).height(), 'width': $(document).width() });
    }
    
    for (var i = 0; i < popIds.length; i++) {
        var pop = $("#"+popIds[i]);
        if (pop && pop.css('display') != 'none') {
            MoveToCenter(document.getElementById(popIds[i]));
        }
    }
    
}

//数组去重
Array.prototype.unique = function()
{
	this.sort();
	var ret=[this[0]];
	for(var i = 1; i < this.length; i++)
	{
		if( this[i] != ret[ret.length-1])
		{
			ret.push(this[i]);
		}
	}
	return ret;
}
function post_to_urlFix(path, params, formName) {
    //如果没有特别声明，自动创建一个
    var form;
    if (formName == null)
        form = document.createElement("form");
    else
        form = document.getElementById(formName);
        
    form.setAttribute("method", "post");
    form.setAttribute("action", path);

    for(var key in params) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", key);
        hiddenField.setAttribute("value", params[key]);

        form.appendChild(hiddenField);
    }
//    document.body.appendChild(form); 
    form.submit();
}
function OpenWindow(url, blank, parm) {
   if (blank) {
         window.open(url, blank, parm);
         }
         else {
                window.location.href = url;
         }
}